const path = require('path')

function resolve (dir) {
  return path.join(__dirname, dir)
}

module.exports = {
  outputDir: 'dist', // build输出目录
  assetsDir: 'assets', // 静态资源目录（js, css, img）
  lintOnSave: true, // eslint-loader 是否在保存的时候检查
  productionSourceMap: false,
  publicPath: '',
  devServer: {
    open: true, // 是否自动弹出浏览器页面
    host: '127.0.0.1',
    port: 8001,
    https: false, // 是否使用https协议
    proxy: { // 跨域代理
      [process.env.VUE_APP_PROXY_API]: {
        target: process.env.VUE_APP_IP_API,
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_PROXY_API]: '/'
        }
      },
      [process.env.VUE_APP_PROXY_FILE]: {
        target: process.env.VUE_APP_IP_FILE,
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_PROXY_FILE]: ''
        }
      }
    }
  },
  css: {
    loaderOptions: { // ant 全局样式修改
      less: {
        modifyVars: {
          'primary-color': '#18BA6C',
          'link-color': '#039E70',
          'border-radius-base': '2px'
        },
        javascriptEnabled: true
      }
    }
  },
  chainWebpack: (config) => {
    // 别名
    config.resolve.alias.set('@', resolve('src'))
    // svg
    const svgRule = config.module.rule('svg')
    svgRule.uses.clear()
    svgRule
      .use('babel-loader')
      .loader('babel-loader')
      .end()
      .use('vue-svg-loader')
      .loader('vue-svg-loader')
  },
  // 警告 webpack 的性能提示
  configureWebpack: {
    performance: {
      hints: 'warning',
      // 入口起点的最大体积 整数类型（以字节为单位）
      maxEntrypointSize: 50000000,
      // 生成文件的最大体积 整数类型（以字节为单位 300k）
      maxAssetSize: 30000000,
      // 只给出 js 文件的性能提示
      assetFilter: function (assetFilename) {
        return assetFilename.endsWith('.js')
      }
    }
  }
}
